import Vue from 'vue'
import Mock from 'mockjs'

Vue.use(Mock)

// 设置拦截ajax请求的相应时间
Mock.setup({
  timeout: '200-600'
})

let configArray = []

// 使用webpack的require.context()遍历所有mock文件
// 参数1： -读取文件的路径
// 参数2： -是否遍历文件的子目录
// 参数3： -匹配文件的正则
const files = require.context('.', true, /\.js$/)
files.keys().forEach((key) => {
  if (key === './index.js') return
  configArray = configArray.concat(files(key).default)
})

// 注册所有的mock服务
configArray.forEach((item) => {
  for (const [path, target] of Object.entries(item)) {
    const protocol = path.split('|')
    const baseUrl = 'http://localhost:3000/api/v1/'
    Mock.mock(new RegExp(baseUrl + protocol[1] + '($|\\?)'), protocol[0], option => {
      // 这里对所有模拟数据打印请求参数  遗憾的是无法打印header中的数据
      try {
        option.body = JSON.parse(option.body)
      } catch (e) {}
      console.log('请求信息：', option)
      return target(option)
    })
  }
})
